home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / dbdsdc.z / dbdsdc
Encoding:
Text File  |  2002-10-03  |  7.5 KB  |  199 lines

  1.  
  2.  
  3.  
  4. DDDDBBBBDDDDSSSSDDDDCCCC((((3333SSSS))))                                                          DDDDBBBBDDDDSSSSDDDDCCCC((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DBDSDC - compute the singular value decomposition (SVD) of a real N-by-N
  10.      (upper or lower) bidiagonal matrix B
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE DBDSDC( UPLO, COMPQ, N, D, E, U, LDU, VT, LDVT, Q, IQ, WORK,
  14.                         IWORK, INFO )
  15.  
  16.          CHARACTER      COMPQ, UPLO
  17.  
  18.          INTEGER        INFO, LDU, LDVT, N
  19.  
  20.          INTEGER        IQ( * ), IWORK( * )
  21.  
  22.          DOUBLE         PRECISION D( * ), E( * ), Q( * ), U( LDU, * ), VT(
  23.                         LDVT, * ), WORK( * )
  24.  
  25. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  26.      These routines are part of the SCSL Scientific Library and can be loaded
  27.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  28.      directs the linker to use the multi-processor version of the library.
  29.  
  30.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  31.      4 bytes (32 bits). Another version of SCSL is available in which integers
  32.      are 8 bytes (64 bits).  This version allows the user access to larger
  33.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  34.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  35.      only one of the two versions; 4-byte integer and 8-byte integer library
  36.      calls cannot be mixed.
  37.  
  38. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  39.      DBDSDC computes the singular value decomposition (SVD) of a real N-by-N
  40.      (upper or lower) bidiagonal matrix B: B = U * S * VT, using a divide and
  41.      conquer method, where S is a diagonal matrix with non-negative diagonal
  42.      elements (the singular values of B), and U and VT are orthogonal matrices
  43.      of left and right singular vectors, respectively. DBDSDC can be used to
  44.      compute all singular values, and optionally, singular vectors or singular
  45.      vectors in compact form.
  46.  
  47.      This code makes very mild assumptions about floating point arithmetic. It
  48.      will work on machines with a guard digit in add/subtract, or on those
  49.      binary machines without guard digits which subtract like the Cray X-MP,
  50.      Cray Y-MP, Cray C-90, or Cray-2.  It could conceivably fail on
  51.      hexadecimal or decimal machines without guard digits, but we know of
  52.      none.  See DLASD3 for details.
  53.  
  54.      The code currently call DLASDQ if singular values only are desired.
  55.      However, it can be slightly modified to compute singular values using the
  56.      divide and conquer method.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDBBBBDDDDSSSSDDDDCCCC((((3333SSSS))))                                                          DDDDBBBBDDDDSSSSDDDDCCCC((((3333SSSS))))
  71.  
  72.  
  73.  
  74. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  75.      UPLO    (input) CHARACTER*1
  76.              = 'U':  B is upper bidiagonal.
  77.              = 'L':  B is lower bidiagonal.
  78.  
  79.      COMPQ   (input) CHARACTER*1
  80.              Specifies whether singular vectors are to be computed as follows:
  81.              = 'N':  Compute singular values only;
  82.              = 'P':  Compute singular values and compute singular vectors in
  83.              compact form; = 'I':  Compute singular values and singular
  84.              vectors.
  85.  
  86.      N       (input) INTEGER
  87.              The order of the matrix B.  N >= 0.
  88.  
  89.      D       (input/output) DOUBLE PRECISION array, dimension (N)
  90.              On entry, the n diagonal elements of the bidiagonal matrix B.  On
  91.              exit, if INFO=0, the singular values of B.
  92.  
  93.      E       (input/output) DOUBLE PRECISION array, dimension (N)
  94.              On entry, the elements of E contain the offdiagonal elements of
  95.              the bidiagonal matrix whose SVD is desired.  On exit, E has been
  96.              destroyed.
  97.  
  98.      U       (output) DOUBLE PRECISION array, dimension (LDU,N)
  99.              If  COMPQ = 'I', then:  On exit, if INFO = 0, U contains the left
  100.              singular vectors of the bidiagonal matrix.  For other values of
  101.              COMPQ, U is not referenced.
  102.  
  103.      LDU     (input) INTEGER
  104.              The leading dimension of the array U.  LDU >= 1.  If singular
  105.              vectors are desired, then LDU >= max( 1, N ).
  106.  
  107.      VT      (output) DOUBLE PRECISION array, dimension (LDVT,N)
  108.              If  COMPQ = 'I', then:  On exit, if INFO = 0, VT' contains the
  109.              right singular vectors of the bidiagonal matrix.  For other
  110.              values of COMPQ, VT is not referenced.
  111.  
  112.      LDVT    (input) INTEGER
  113.              The leading dimension of the array VT.  LDVT >= 1.  If singular
  114.              vectors are desired, then LDVT >= max( 1, N ).
  115.  
  116.      Q       (output) DOUBLE PRECISION array, dimension (LDQ)
  117.              If  COMPQ = 'P', then:  On exit, if INFO = 0, Q and IQ contain
  118.              the left and right singular vectors in a compact form, requiring
  119.              O(N log N) space instead of 2*N**2.  In particular, Q contains
  120.              all the DOUBLE PRECISION data in LDQ >= N*(11 + 2*SMLSIZ +
  121.              8*INT(LOG_2(N/(SMLSIZ+1)))) words of memory, where SMLSIZ is
  122.              returned by ILAENV and is equal to the maximum size of the
  123.              subproblems at the bottom of the computation tree (usually about
  124.              25).  For other values of COMPQ, Q is not referenced.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. DDDDBBBBDDDDSSSSDDDDCCCC((((3333SSSS))))                                                          DDDDBBBBDDDDSSSSDDDDCCCC((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      IQ      (output) INTEGER array, dimension (LDIQ)
  141.              If  COMPQ = 'P', then:  On exit, if INFO = 0, Q and IQ contain
  142.              the left and right singular vectors in a compact form, requiring
  143.              O(N log N) space instead of 2*N**2.  In particular, IQ contains
  144.              all INTEGER data in LDIQ >= N*(3 + 3*INT(LOG_2(N/(SMLSIZ+1))))
  145.              words of memory, where SMLSIZ is returned by ILAENV and is equal
  146.              to the maximum size of the subproblems at the bottom of the
  147.              computation tree (usually about 25).  For other values of COMPQ,
  148.              IQ is not referenced.
  149.  
  150.      WORK    (workspace) DOUBLE PRECISION array, dimension (LWORK)
  151.              If COMPQ = 'N' then LWORK >= (4 * N).  If COMPQ = 'P' then LWORK
  152.              >= (6 * N).  If COMPQ = 'I' then LWORK >= (3 * N**2 + 4 * N).
  153.  
  154.      IWORK   (workspace) INTEGER array, dimension (8*N)
  155.  
  156.      INFO    (output) INTEGER
  157.              = 0:  successful exit.
  158.              < 0:  if INFO = -i, the i-th argument had an illegal value.
  159.              > 0:  The algorithm failed to compute an singular value.  The
  160.              update process of divide and conquer failed.
  161.  
  162. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  163.      Based on contributions by
  164.         Ming Gu and Huan Ren, Computer Science Division, University of
  165.         California at Berkeley, USA
  166.  
  167.  
  168. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  169.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  170.  
  171.      This man page is available only online.
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.